// myInstanceof
// instanceof 是 JavaScript 中的一个运算符，用于判断一个对象是否是某个构造函数的实例。
// 其原理是检查对象的原型链中是否存在构造函数的原型对象。如果存在，则返回 true，否则返回 false。
function myInstanceof(left, right) {
  // 这里先用typeof来判断基础数据类型，如果是，直接返回false
  if (typeof left !== "object" || left === null) return false;
  let proto = Object.getPrototypeOf(left);
  while (true) {
    //循环往下寻找，直到找到相同的原型对象
    if (proto === null) return false;
    if (proto === right.prototype) return true; //找到相同原型对象，返回true
    proto = Object.getPrototypeof(proto);
  }
}
// 验证一下自己实现的myInstanceof是否OK
console.log(myInstanceof(new Number(123), Number)); // true
